/*
 * 创建日期 2007-5-12
 *
 * 成都天和软件公司
 * 电话：028-85425861
 * 传真：028-85425861-8008
 * 邮编：610041 
 * 版权所有
 */

package  org.fantasy.common.util;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

/**
 * rem: 功能说明 aut: 王文成 ver: 1.0 log: 2007-5-12
 */

public interface Request extends HttpServletRequest {
    /**
     * 返回 键值对应 Map
     * 
     * @param request
     * @return
     */
	Map<String, Object> getRequestMap();

    /**
     * 返回 键值对应 Map
     * 
     * @param request
     * @return
     */
	Map<String, Object> getQryMap();

    
    /**
     * 获取参数 默认返回空
     * 
     * @param request
     * @param param
     * @return
     */
    String getString(String param);

    /**
     * 获取参数
     * 
     * @param request
     * @param param
     * @param defaultValue
     */
    String getString(String param, String defaultValue);

    /**
     * 获取日期对象
     * 
     * @param request
     * @param param
     * @param defaultValue
     */
    java.util.Date getDate(String param, String parttern);

    /**
     * 获取整型数
     * 
     * @param request
     * @param param
     */
    int getInt(String param);

    /**
     * 获取整型数
     * 
     * @param request
     * @param param
     * @param defaultValue
     */
    int getInt(String param, int defaultValue);

    /**
     * 获取长整型数
     */
    long getLong(String param);

    /**
     * 获取长整型数
     */
    long getLong(String param, long defaultValue);

    /**
     * 获取参数是否有效
     * 
     * @param request
     * @param param
     * @return
     */
    boolean getBoolean(String param);

    /**
     * 参数是否有效 与 getParameterBoolean 等效
     * 
     * @param request
     * @param param
     * @return
     */
    boolean isValid(String param);

    /**
     * 获取 Double
     * 
     * @param request
     * @param param
     */
    double getDouble(String param);
    
    /**
     * 取得所有值
     * @param param
     * @return
     */
    String[] getValues(String param);
    
    /**
     * 取得所有值
     * @param param
     * @return
     */
    int[] getIntValues(String param);

    /**
     * 取得绝对路径
     * 
     * @param path
     * @return
     */
    @SuppressWarnings("all")
    String getRealPath(String path);
}